///******************************************************************************* // * Copyright (c) 2007, 2008 IBM Corporation and others. // * All rights reserved. This program and the accompanying materials // * are made available under the terms of the Eclipse Public License v1.0 // * which accompanies this distribution, and is available at // * http://www.eclipse.org/legal/epl-v10.html // * // * Contributors: // * IBM Corporation - initial API and implementation // * Michael Krkoska - initial API and implementation (bug 188333) // *******************************************************************************/ //package org.eclipse.jface.tests.viewers.interactive; // //import java.text.DecimalFormat; //import java.text.MessageFormat; // //import org.eclipse.jface.preference.JFacePreferences; //import org.eclipse.jface.resource.JFaceResources; //import org.eclipse.jface.viewers.IStructuredContentProvider; //import org.eclipse.jface.viewers.StyledCellLabelProvider; //import org.eclipse.jface.viewers.StyledString; //import org.eclipse.jface.viewers.TableViewer; //import org.eclipse.jface.viewers.Viewer; //import org.eclipse.jface.viewers.ViewerCell; //import org.eclipse.jface.viewers.StyledString.Styler; //import org.eclipse.swt.SWT; //import org.eclipse.swt.events.SelectionAdapter; //import org.eclipse.swt.events.SelectionEvent; //import org.eclipse.swt.graphics.Font; //import org.eclipse.swt.graphics.FontData; //import org.eclipse.swt.graphics.Image; //import org.eclipse.swt.graphics.RGB; //import org.eclipse.swt.graphics.TextStyle; //import org.eclipse.swt.layout.GridData; //import org.eclipse.swt.layout.GridLayout; //import org.eclipse.swt.widgets.Button; //import org.eclipse.swt.widgets.Composite; //import org.eclipse.swt.widgets.Control; //import org.eclipse.swt.widgets.Display; //import org.eclipse.swt.widgets.Event; //import org.eclipse.swt.widgets.Label; //import org.eclipse.swt.widgets.Shell; // ///** // * Using a {@link StyledCellLabelProvider} on table viewer. // */ // //public class StyledCellLabelProviderTests { // // private static int IMAGE_SIZE= 16; // // private static Image IMAGE1; // private static Image IMAGE2; // // public static void main(String[] args) { // // Display display = new Display(); // // JFaceResources.getColorRegistry().put(JFacePreferences.COUNTER_COLOR, new RGB(0,127,174)); // // IMAGE1= new Image(display, display.getSystemImage(SWT.ICON_WARNING).getImageData().scaledTo(IMAGE_SIZE, IMAGE_SIZE)); // IMAGE2= new Image(display, display.getSystemImage(SWT.ICON_ERROR).getImageData().scaledTo(IMAGE_SIZE, IMAGE_SIZE)); // // Shell shell= new Shell(display , SWT.CLOSE | SWT.RESIZE); // shell.setSize(400, 600); // shell.setLayout(new GridLayout(1, false)); // // StyledCellLabelProviderTests example= new StyledCellLabelProviderTests(); // Control composite= example.createPartControl(shell); // composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1)); // // shell.open(); // // while (!shell.isDisposed()) { // if (!display.readAndDispatch()) { // display.sleep(); // } // } // display.dispose(); // } // // protected boolean useBold; // // public StyledCellLabelProviderTests() { // } // // public Composite createPartControl(Composite parent) { // Composite composite= new Composite(parent, SWT.NONE); // // composite.setLayout(new GridLayout(1, true)); // // final Label label= new Label(composite, SWT.NONE); // label.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false)); // label.setText("Operations per second: xxxxx"); //$NON-NLS-1$ // // final Runnable[] operation = new Runnable[1]; // // final Button timeButton = new Button(composite, SWT.CHECK); // timeButton.setText("Time"); // timeButton.addSelectionListener(new SelectionAdapter(){ // public void widgetSelected(SelectionEvent e) { // setTimer(timeButton.getDisplay(), timeButton.getSelection(), operation, label); // } // }); // // final Button stylingButton = new Button(composite, SWT.CHECK); // stylingButton.setText("enable styling"); // stylingButton.setSelection(true); // // final Button boldButton = new Button(composite, SWT.CHECK); // boldButton.setText("use bold"); // // final TableViewer tableViewer= new TableViewer(composite, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL); // // boldButton.addSelectionListener(new SelectionAdapter(){ // public void widgetSelected(SelectionEvent e) { // useBold = boldButton.getSelection(); // tableViewer.refresh(); // } // }); // // operation[0] = new Runnable(){ // public void run() { // tableViewer.refresh(); // } // }; // // FontData[] boldFontData= getModifiedFontData(tableViewer.getTable().getFont().getFontData(), SWT.BOLD); // // Font boldFont = new Font(Display.getCurrent(), boldFontData); // final ExampleLabelProvider labelProvider= new ExampleLabelProvider(boldFont); // TestContentProvider contentProvider= new TestContentProvider(); // // tableViewer.setContentProvider(contentProvider); // tableViewer.setLabelProvider(labelProvider); // // stylingButton.addSelectionListener(new SelectionAdapter(){ // public void widgetSelected(SelectionEvent e) { // labelProvider.setOwnerDrawEnabled(stylingButton.getSelection()); // tableViewer.refresh(); // } // }); // // // GridData data= new GridData(GridData.FILL, GridData.FILL, true, true); // tableViewer.getControl().setLayoutData(data); // tableViewer.setInput(new Object()); // // return composite; // } // // boolean timerOn = false; // long startTime; // int numOperations; // DecimalFormat decimalFormat = new DecimalFormat("##.#"); // // protected void setTimer(final Display display, boolean selection, final Runnable[] operation, final Label resultLabel) { // timerOn = selection; // if (timerOn) { // startTime = System.currentTimeMillis(); // numOperations = 0; // display.asyncExec(new Runnable() { // public void run() { // if (display.isDisposed() || resultLabel.isDisposed()) { // return; // } // if (operation[0] != null) { // operation[0].run(); // } // numOperations++; // long currentTime = System.currentTimeMillis(); // long elapsedTime = currentTime - startTime; // if (elapsedTime >= 1000) { // double timePerOperation = elapsedTime / 1000.0 / numOperations; // double operationsPerSecond = 1.0/timePerOperation; // resultLabel.setText("Operations per second: " + decimalFormat.format(operationsPerSecond)); // numOperations = 0; // startTime = System.currentTimeMillis(); // } // if (timerOn) { // display.asyncExec(this); // } // } // }); // } else { // resultLabel.setText("Operations per second: xxxx"); // } // } // // private static FontData[] getModifiedFontData(FontData[] originalData, int additionalStyle) { // FontData[] styleData = new FontData[originalData.length]; // for (int i = 0; i < styleData.length; i++) { // FontData base = originalData[i]; // styleData[i] = new FontData(base.getName(), base.getHeight(), base.getStyle() | additionalStyle); // } // return styleData; // } // // private class ExampleLabelProvider extends StyledCellLabelProvider { // // private final Styler fBoldStyler; // // public ExampleLabelProvider(final Font boldFont) { // fBoldStyler= new Styler() { // public void applyStyles(TextStyle textStyle) { // textStyle.font= boldFont; // } // }; // } // // public void update(ViewerCell cell) { // Object element= cell.getElement(); // // if (element instanceof File) { // File file= (File) element; // // Styler style= file.isDirectory() && useBold ? fBoldStyler: null; // StyledString styledString= new StyledString(file.getName(), style); // String decoration = MessageFormat.format(" ({0} bytes)", new Object[] { new Long(file.length()) }); //$NON-NLS-1$ // styledString.append(decoration, StyledString.COUNTER_STYLER); // // cell.setText(styledString.toString()); // cell.setStyleRanges(styledString.getStyleRanges()); // // if (file.isDirectory()) { // cell.setImage(IMAGE1); // } else { // cell.setImage(IMAGE2); // } // } else { // cell.setText("Unknown element"); //$NON-NLS-1$ // } // // super.update(cell); // } // // protected void measure(Event event, Object element) { // super.measure(event, element); // } // } // // static class File { // // private final String name; // private final int length; // private final boolean dir; // // File(String name, int length, boolean dir) { // this.name = name; // this.length = length; // this.dir = dir; // } // // public int length() { // return length; // } // // public String getName() { // return name; // } // // boolean isDirectory() { // return dir; // } // // } // // private static class TestContentProvider implements IStructuredContentProvider { // // public Object[] getElements(Object element) { // return new File[]{ // new File("asdfkjghfasdkjasdfhjgasdfkjhg", 2348, false), // new File("sdafkuyasdfkljh", 2348, false), // new File("asdklufhalsdkhlkjhnklj hlh", 2348, true), // new File("asdfasdf asdf ", 2348, false), // new File("fds sdf", 2348, true), // new File(" sdafuh lsdfahj alsdfk hl", 2348, false), // new File("sdfahj sdfajk hsdfjkh", 2348, false), // new File("sdafkja sdfjkh asdfkhj", 2348, false), // new File("sdfakj hasdfljkha sdfljkh sdfa", 348, true), // new File("hj ka g", 1334, true), // new File("asdfjk hsdfaljkh", 2348, false), // new File("asdh gasdflhg ", 3348, true), // new File("asd ghasdfkjg sdfkyug ", 4345, false), // new File("asdf hjasdflkjh sdfal", 5345, false), // new File("asdlfuh afsdhjg fdsalhj", 6648, false), // new File("uiy viuh vhj v", 7448, true), // new File("sdfauighsdvpyu ghasjkn", 8848, true), // new File("asduih cuia ;nac", 9548, false), // new File("chju kljhuuklh jk;", 348, false), // new File("cdailukhu l;hj .n", 448, false), // new File("auihy akl;h l;j", 2348, false), // new File("caiugh j l;kjlh jcd", 2328, true), // new File("auio;h jkh lhjl h ljjhbvj", 2348, true), // new File("ajklkja kj lkjh jklh ", 2248, false), // new File("asdfkjghfasdkjasdfhjgasdfkjhg", 2348, true), // new File("sdafkuyasdfkljh", 2348, false), // new File("asdklufhalsdkhlkjhnklj hlh", 2348, true), // new File("asdfasdf asdf ", 2348, false), // new File("fds sdf", 2348, true), // new File(" sdafuh lsdfahj alsdfk hl", 2348, true), // new File("sdfahj sdfajk hsdfjkh", 2348, false), // new File("sdafkja sdfjkh asdfkhj", 2348, true), // new File("sdfakj hasdfljkha sdfljkh sdfa", 348, true), // new File("hj ka g", 1334, false), // new File("asdfjk hsdfaljkh", 2348, false), // new File("asdh gasdflhg ", 3348, true), // new File("asd ghasdfkjg sdfkyug ", 4345, true), // new File("asdf hjasdflkjh sdfal", 5345, true), // new File("asdlfuh afsdhjg fdsalhj", 6648, false), // new File("uiy viuh vhj v", 7448, false), // new File("sdfauighsdvpyu ghasjkn", 8848, true), // new File("asduih cuia ;nac", 9548, false), // new File("chju kljhuuklh jk;", 348, true), // new File("cdailukhu l;hj .n", 448, true), // new File("auihy akl;h l;j", 2348, false), // new File("caiugh j l;kjlh jcd", 2328, true), // new File("auio;h jkh lhjl h ljjhbvj", 2348, false), // new File("ajklkja kj lkjh jklh ", 2248, true), // }; // } // // public void dispose() { // } // // public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { // } // } //}